Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

hmpo-model

Package Overview
Dependencies
Maintainers
3
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hmpo-model

Simple model for interacting with http/rest apis.

  • 3.2.2
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

hmpo-model

  • localModel - Simple model for data persistance
  • remoteModel - Simple model for interacting with http/rest apis.

Local Model Usage

get

  • gets a model property via a key

set

  • sets a property on the model to a value and dispatches events

unset

  • unsets a property

reset

  • resets a model
  • suppresses change event notifications if options.silent is set

increment

  • Increments a property

toJSON

  • returns a JSON representation of the data in the model

Remote Model Usage

Normally this would be used as an abstract class and extended with your own implementation.

Implementations would normally define at least a url method to define the target of API calls.

There are three methods for API interaction corresponding to GET, POST, and DELETE http methods:

fetch

var model = new Model();
model.fetch(function (err, data, responseTime) {
    console.log(data);
});

save

var model = new Model();
model.set({
    property: 'properties are sent as JSON request body by default'
});
model.save(function (err, data, responseTime) {
    console.log(data);
});

The method can also be overwritten by passing options

var model = new Model();
model.set({
    property: 'this will be sent as a PUT request'
});
model.save({ method: 'PUT' }, function (err, data, responseTime) {
    console.log(data);
});

delete

var model = new Model();
model.delete(function (err, data) {
    console.log(data);
});

If no url method is defined then the model will use the options parameter and Node's url.format method to construct a URL.

var model = new Model();

// make a GET request to http://example.com:3000/foo/bar
model.fetch({
    protocol: 'http',
    hostname: 'example.com',
    port: 3000,
    path: '/foo/bar'
}, function (err, data, responseTime) {
    console.log(data);
});

Events

API requests will emit events as part of their lifecycle.

sync is emitted when an API request is sent

model.on('sync', function (settings) { });

success is emitted when an API request successfully completes

model.on('success', function (data, settings, statusCode, responseTime) { });

fail is emitted when an API request fails

model.on('fail', function (err, data, settings, statusCode, responseTime) { });

Hooks

API requests will fire hooks specified in model options as part of their lifecycle.

new Model(null, options);

sync hook is fired when an API request is sent

options.hooks.sync({ settings });

success hook is fired when an API request successfully completes

options.hooks.success({ data, settings, statusCode, responseTime });

fail hook is fired when an API request fails

options.hooks.fail({ err, data, settings, statusCode, responseTime });

FAQs

Package last updated on 10 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc